// 函数this指的是函数执行上下文，
// 1. 对于function函数是在函数执行时确定的
// 2. 对于箭头函数()=>{}是在函数定义时确定的，箭头函数本身没有this，是继承自父级作用域中的this
// 改变函数this指向

// 使用 func.call(thisObj, ..args)如此调用
function myBind(thisTar, ...args1) {
  const fn = this
  thisTar.fn = fn
  return (...args2) => {
    const ans = thisTar.fn(...args1, ...args2)
    delete thisTar.fn
    return ans
  }
}
function myApply(thisTar, args) {
  const  fn = this
  thisTa.fn = fn
  const ans = thisTar.fn(...args)
  delete thisTar.fn
  return ans
}
function myCall(thisTar, ...args) {
  const fn = this
  thisTar.fn = fn
  const ans = thisTar.fn(...args)
  delete thisTar.fn
  return ans
}